# unicode 字符串编码

# 获取字符的整数表示
print(ord('的'))

# 把编码转换为指定的字符
print(chr(30340))

# 直接用十六进制表示
print('直接用十六进制表示', '\u4e2d\u6587')

# 以Unicode表示的str通过encode()方法可以编码为指定的bytes
asciiAbc = 'abc'.encode('ascii')
print(asciiAbc)
utfZw = '中文abc123'.encode('utf-8')
print(utfZw)
# asciiZw = '中文abc123'.encode('ascii')
# print(asciiZw)

# bytes转换为制定编码
codeAbc = b'abc'.decode('ascii')
print(codeAbc)
# codeZw = b'\xe4\xb8\xad\xe6\x96\x87\xff'.decode('utf-8')
codeZw = b'\xe4\xb8\xad\xe6\x96\x87\xff'.decode('utf-8', errors='ignore')
print(codeZw)

# 统计字符数
print(len('中文'))
# 统计字节数
print(len(b'\xe4\xb8\xad\xe6\x96\x87'))

# 输出格式化
print('Hello, %s, 你现在有%d元' % ('会员', 12330))
print('Hello, {0}, 你现在有{1:.3f}元'.format('会员', 12330))
print('%2d-%02d' % (3, 1))
print('%.4f' % 3.1415926)
# %使用%进行转义
print('%%%.4f' % 23)

# 计算72到85提升了多少个百分点
prevPoint = 72
currPoint = 85
incrPoint = (currPoint - prevPoint) / prevPoint
print('精确增加了%f个百分点' % incrPoint)
print('大约增加了%.1f个百分点' % incrPoint)
print('另一种算法增加了%f个百分点' % (currPoint / prevPoint - 1))
